home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / menu / kiwi / demoprg / druck.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-29  |  5.7 KB  |  262 lines

  1. #include<kiwi_inc.h>
  2. #include<kiwipro.h>
  3. #include<demopro.h>
  4. #include<kiwiprin.h>
  5.  
  6.  
  7. /*    Druckmenu                        */
  8. MENU drucker[8]={
  9. "Wahle Datei  ",0,1,"Setzt den Druckausgabekanal fest",
  10. "Ausgabegerat ",0,1,"Setzt die Druckausgabe auf Device",
  11. "─────────────",-1,1,"",
  12. "Breitenformat",0,1,"Wählt die Druckbreite",
  13. "Schrift      ",0,1,"Wählt die Druckschrift",
  14. "Lage         ",0,1,"Wählt die Drucklage",
  15. "Attribut     ",1,1,"Wählt die Druckattribute",
  16. "Initalisieren",1,1,"Setzt die Defaultwerte",
  17. };
  18.  
  19.  
  20. /*     Ausgabemenu                        */
  21. MENU ausgabe[3]={    
  22. "Drucker",0,1,"",
  23. "Datei  ",1,1,"",
  24. "Beides ",0,1,"",
  25. };
  26.  
  27.  
  28. /*     Breite menu                        */
  29. MENU breite[9]={
  30. "Kondens ",0,1,"",
  31. "Normal  ",0,1,"",
  32. "────────",-1,0,"",
  33. "10 CPI  ",0,1,"",
  34. "12 CPI  ",1,1,"",
  35. "15 CPI  ",1,1,"",
  36. "────────",-1,0,"",
  37. "Doppelt ",0,1,"",
  38. "Dreifach",1,1,"",
  39. };
  40.  
  41.  
  42. /*     Schriftartmenu                        */
  43. MENU schrift[6]={    
  44. "Draft    ",0,1,"",
  45. "Courier  ",0,1,"",
  46. "Souvenier",0,1,"",
  47. "Helvette ",0,1,"",
  48. "Times    ",0,1,"",
  49. "Elite    ",0,1,"",
  50. };
  51.  
  52.  
  53. /*     Lagemenu                        */
  54. MENU lage[4]={        
  55. "Hoch   ",0,1,"",
  56. "Normal ",0,1,"",
  57. "Tief   ",0,1,"",
  58. "Doppelt",0,1,"",
  59. };
  60.  
  61.  
  62. /*     Attributmenu                        */
  63. MENU attribut[4]={    
  64. "Fett         ",0,1,"",
  65. "Unterstrichen",0,1,"",
  66. "Proportional ",0,1,"",
  67. "Kursiv       ",0,1,"",
  68. };
  69.  
  70.  
  71. /*****************************************************************************
  72. *Name :druckmenu
  73. *Typ  :int
  74. *Zweck:Steuert das Geschehen bei Druckermenu
  75. *
  76. *
  77. *        Name    Typ    Zweck
  78. *Aufrufpara :
  79. *
  80. *Rueckgabep :
  81. *
  82. *Funktionswt:        0    immer
  83. *
  84. *****************************************************************************/
  85. int druckmenu()
  86. {
  87. int i,c,wahl;
  88. WINDOW win=0,win1=0,win2=0;
  89. FILE *stream=NULL;
  90. FILE *stream1=NULL;
  91. char pfad[DATEI_PFAD_LEN],druckdatei[DATEI_PFAD_NAME_LEN];
  92. char dateiname[DATEI_NAME_LEN];
  93.  
  94. init_string(druckdatei,sizeof(druckdatei));/* Loesche Daten    */
  95. init_string(dateiname,sizeof(dateiname));
  96. init_string(pfad,sizeof(pfad));
  97.  
  98. init_editor(EDIT_ROW);    /* setze Editor in Zeilenmodus        */
  99. if(check_printer_status(0)& 7)    /* Ist Printer online        */ 
  100. {
  101.     set_error_name("Drucker nicht bereit");
  102.     get_error();    /* Zeige Fehlermeldung            */
  103. }
  104.  
  105.  
  106.  
  107. wahl=choose_sub_menu(drucker,8,&win);
  108. switch(wahl){
  109. case 0:    set_help_name("Dateierfassung Drucken");
  110.     set_color_table(1);
  111.     win1=load_window("demo4.wnd");
  112.     i=scanf_mask(win1,0,"%51s",pfad);
  113.     if(i==13)
  114.     {
  115.         if(array_get_files(dateiname,pfad,20,3)==1)
  116.         {
  117.             create_file_path(druckdatei,pfad,dateiname);
  118.             print_mask(win1,1,"%51s",dateiname);
  119.             if(dialog2("Wollen Sie die Datei wirklich drucken",
  120.                 "Drucken","Abbrechen",AM,get_screen_height()-10))
  121.                 print_selectet_file(druckdatei);
  122.         }    
  123.     }
  124.     close_window(win1);
  125.     break;
  126.  
  127. case 1:    set_help_name("Druckausgabegerat");
  128.     c=choose_menu(ausgabe,3,25,3,&win1);
  129.     switch(c){
  130.         case 1:    win2=open_window("Ausgabekanal",AM,AM,DATEI_PFAD_LEN,4,DOPPELT);
  131.             display_string("Geben Sie die Druckdatei ein",win2,AM,1);
  132.             set_window_color(win2,FLIP);
  133.             c=edit_string(druckdatei,win2,AM,2,sizeof(druckdatei));
  134.             if(c!=27)
  135.             {
  136.                 fclose(stream);/* Loesche eventuell alte Druckdatei    */
  137.                 stream=fopen(druckdatei,"wb");
  138.                 if(stream==NULL)
  139.                 {
  140.                     set_error_name("Druckausgabe Datei");
  141.                     get_error();
  142.                 }
  143.                 else     redirect_printer(stream);/* Druckausgabe auf Datei Stream */
  144.             }                        
  145.             close_window(win2);    
  146.             close_window(win1);    
  147.             break;
  148.  
  149.         case 2:    win2=open_window("Ausgabekanal",AM,AM,DATEI_PFAD_LEN,4,DOPPELT);
  150.             display_string("Geben Sie die zusatzliche Druckdatei ein",win2,AM,1);
  151.             set_window_color(win2,FLIP);
  152.             c=edit_string(druckdatei,win2,AM,2,sizeof(druckdatei));
  153.             if(c!=27)
  154.             {
  155.                 fclose(stream1);
  156.                 stream1=fopen(druckdatei,"wb");
  157.                 if(stream1==NULL)
  158.                 {
  159.                     set_error_name("Druckausgabe Datei");
  160.                     get_error();
  161.                 }
  162.                 else     link_printer(stream1);/* Druckausgabe auch auf Datei Stream1    */
  163.             }                
  164.             close_window(win2);    
  165.             close_window(win1);    
  166.             break;
  167.  
  168.         default:break;
  169.         }
  170.     close_window(win1);
  171.     break;
  172.  
  173. case 2: break;
  174.  
  175. case 3:    set_help_name("Druckbreite");
  176.     c=choose_menu(breite,9,17,4,&win1);
  177.     switch(c){
  178.         case 0: print_mode(KONDENS_EIN);
  179.             break;
  180.         case 1: break;
  181.         case 2: break;
  182.         case 3:    print_mode(CPI_10);
  183.             break;
  184.         case 4:    print_mode(CPI_12);
  185.             break;
  186.         case 5:    print_mode(CPI_15);
  187.             break;
  188.         case 6: break;
  189.         case 7:    print_mode(DOPPELTX);
  190.             break;
  191.         case 8:    print_mode(DREIFACHX);
  192.             break;
  193.         default:break;
  194.         }    
  195.     close_window(win1);
  196.     break;
  197.  
  198. case 4:    set_help_name("Druckschrift");
  199.     c=choose_menu(schrift,6,18,6,&win1);
  200.     switch(c){
  201.         case 0:    print_mode(DRAFT_MODE);
  202.             break;
  203.         case 1:    print_mode(COURIER);
  204.             break;
  205.         case 2:    print_mode(SOUVENIER);
  206.             break;
  207.         case 3:    print_mode(HELVETTE);
  208.             break;
  209.         case 4:    print_mode(TIMES);
  210.             break;
  211.         case 5:    print_mode(ELITE);
  212.             break;
  213.         default:{break;}
  214.         }    
  215.     close_window(win1);
  216.     break;
  217.  
  218. case 5:    set_help_name("Drucklage");
  219.     c=choose_menu(lage,4,29,7,&win1);
  220.     switch(c){
  221.         case 0:    print_mode(HOCH_EIN);
  222.             break;
  223.         case 2:    print_mode(TIEF_EIN);
  224.             break;
  225.         case 3:    print_mode(DOPPELTY);
  226.             break;
  227.         default:break;
  228.         }
  229.     close_window(win1);
  230.     break;
  231.  
  232. case 6:    set_help_name("Druckattribut");
  233.     c=choose_menu(attribut,4,22,10,&win1);
  234.     switch(c){
  235.         case 0:    print_mode(FETT_EIN);
  236.             break;
  237.         case 1:    print_mode(UNTERSTREICH_EIN);
  238.             break;
  239.         case 2:    print_mode(PROPORTIONAL_EIN);
  240.             break;
  241.         case 3:    print_mode(CURSIV_EIN);
  242.             break;
  243.         default:break;
  244.         }    
  245.     close_window(win1);
  246.     break;
  247.  
  248. case 7:    print_mode(PRINTER_RESET);
  249.     unlink_printer();
  250.     if(stream!=NULL)fclose(stream);
  251.     if(stream1!=NULL)fclose(stream1);
  252.     redirect_printer(stdprn);    
  253.     break;
  254. }    
  255. close_window(win);
  256. set_color_table(0);
  257.  
  258.  
  259.  
  260. return(0);
  261. }
  262.